package com.xiyu.service.vo.health.medicinePlan;

import com.xiyu.service.vo.health.medicine.baseVO.HealthMedicinePlanBase;
import com.xiyu.service.vo.elder.info.baseVO.ElderInfoBase;
import com.xiyu.service.vo.health.medicine.baseVO.HealthMedicineBase;
import com.xiyu.service.vo.health.medicine.baseVO.HealthMedicinePlanDetailBase;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import jakarta.validation.constraints.*;
import org.hibernate.validator.constraints.Length;
import jakarta.validation.Valid;
import com.xiyu.service.enums.common.CommonStatusEnum;
import com.xiyu.service.framework.validation.InEnum;
import java.math.BigDecimal;

@Schema(description = "获取单个用药计划")
@Data
public class MedicinePlanSingleGetOutput extends HealthMedicinePlanBase {

    @Schema(description = "用药种类数")
    private Integer medicineTypeNumber;

    @Schema(description = "老人ID")
    private Long elderId;

    @Schema(description = "老人基本信息")
    @Valid
    private elder elder;

    @Schema(description = "用药计划主键ID")
    private Long id;

    @Schema(description = "用药计划明细")
    @Valid
    private List<detail> details;

    @Schema(description = "用药计划明细")
    @Data
    public static class detail extends HealthMedicinePlanDetailBase {

        @Schema(description = "药品档案")
        private medicine medicine;

        @Schema(description = "用药计划明细主键ID")
        private Long id;
    }

    @Schema(description = "药品档案")
    @Data
    public static class medicine extends HealthMedicineBase {
    }

    @Schema(description = "老人基本信息")
    @Data
    public static class elder extends ElderInfoBase {
    }
}